home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 10
/
AACD 10.iso
/
AACD
/
Magazine
/
Online
/
httpproxy
/
goodies
/
httpdel.rexx
next >
Wrap
OS/2 REXX Batch file
|
1996-08-20
|
2KB
|
105 lines
/*
** httpdel.rexx
**
** REQUIREMENTS:
** rexxdossupport.library 2.0+
** rexxsupport.library
** httpdelete
** List 42.7+
** Run
**
** $(C): 1996, Bruno Barbera, Taranto
** $VER: httpdel.rexx 1.01 (20.7.96)
*/
CALL Time('R')
lib='rexxdossupport.library'; IF ~Show('L',lib) THEN CALL AddLib(lib,0,-30)
lib='rexxsupport.library'; IF ~Show('L',lib) THEN CALL AddLib(lib,0,-30)
prg.TEMPLATE='CACHEDIR=DIR/A,TIME/K/N,MAXSIZE/K/N,PARAMS/F'
prg.PIPENAME='PIPE:'Pragma('I')
prg.TIMEDELTA=5
httpd.PATH='AmiTCP:bin/httpdelete'
PARSE ARG prg.PARAMS
IF prg.PARAMS='?' THEN DO
CALL WriteCh('STDOUT',prg.TEMPLATE': ')
prg.PARAMS=ReadLn('STDIN')
END
IF ~ReadArgs(prg.PARAMS,prg.TEMPLATE,'args.') THEN DO
SAY Fault(rc)
EXIT 20
END
IF Symbol('args.MAXSIZE')=='VAR' THEN DO
CALL Pragma('D',args.CACHEDIR)
ADDRESS COMMAND 'Run <>NIL: List >'prg.PIPENAME 'ALL FILES SORT D LFORMAT "%n*n%l"'
IF Open('Pipe',prg.PIPENAME) THEN DO
maxsize=args.MAXSIZE*1024
sizesum=0
DO UNTIL EOF('Pipe')
filename=ReadLn('Pipe')
IF filename=='' THEN ITERATE
filesize=ReadLn('Pipe'); IF filesize=='empty' THEN filesize=0
sizesum=sizesum+filesize
IF sizesum>maxsize THEN DO
IF Symbol('prevfile')=='LIT' THEN args.TIME=0
ELSE args.TIME=FileSecs(prevfile)+prg.TIMEDELTA
CALL Time('R')
DO UNTIL EOF('Pipe'); CALL ReadLn('Pipe'); END
END
ELSE prevfile=filename
END
CALL Close('Pipe')
END
END
prg.CLINE=httpd.PATH 'CACHEDIR' args.CACHEDIR
IF Symbol('args.TIME')=='VAR' THEN prg.CLINE=prg.CLINE 'TIME' args.TIME+Trunc(Time('E'))
IF Symbol('args.PARAMS')=='VAR' THEN prg.CLINE=prg.CLINE args.PARAMS
ADDRESS COMMAND prg.CLINE
EXIT
/* Start FileSecs(file)
** Restituisce l'età (in secondi) del file dato
*/
FileSecs:
RETURN SysTime()-FileTime(Arg(1))
/* End */
/* Start SysTime()
** Restituisce il numero di secondi trascorsi dall'1 Gen 1978
*/
SysTime:
RETURN (Date('I')*86400)+Time('S')
/* End */
/* Start FileTime(file)
** Restituisce la data di un file come secondi trascorsi dall'1 Gen 1978
*/
FileTime:
PROCEDURE
fs=StateF(Arg(1))
RETURN (Word(fs,5)*86400)+(Word(fs,6)*60)+Trunc(Word(fs,7)/50)
/* End */